package com.xiaoh.dormitoryrepairreportbackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoh.dormitoryrepairreportbackend.model.entity.Notification;

/**
 * 通知表 服务类
 */
public interface NotificationService extends IService<Notification> {

    /**
     * 创建通知
     *
     * @param recipientId 接收人ID
     * @param title       通知标题
     * @param content     通知内容
     * @param relatedType 关联业务类型
     * @param relatedId   关联业务ID
     * @return 是否成功
     */
    boolean createNotification(Long recipientId, String title, String content, String relatedType, Long relatedId);

    /**
     * 标记通知为已读
     *
     * @param notificationId 通知ID
     * @param userId         用户ID
     * @return 是否成功
     */
    boolean markAsRead(Long notificationId, Long userId);

    /**
     * 标记用户所有通知为已读
     *
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean markAllAsRead(Long userId);

    /**
     * 获取用户未读通知数量
     *
     * @param userId 用户ID
     * @return 未读通知数量
     */
    long getUnreadCount(Long userId);
}
